<script>
	// //1. 导入统一身份信息管理模块
	// import uniIdPagesInit from '@/uni_modules/uni-id-pages/init.js';
	// //2. 导入uniIm的Utils工具类
	// import uniImUtils from '@/uni_modules/uni-im/common/utils.js';
	
	import silenceUpdate from '@/uni_modules/rt-uni-update/js_sdk/silence-update.js' //引入静默更新
	import Vue from 'vue'
	import {
		version
	} from "@/api/public";
	// #ifdef H5
	var VConsole = require('@/utils/vconsole.min.js')
	//  #endif
	export default {
		data() {
			return {
				data: {
					// 版本更新内容 支持<br>自动换行
					describe: '1. 修复已知问题<br>2. 优化用户体验',
					edition_url: '', //apk、wgt包下载地址或者应用市场地址  安卓应用市场 market://details?id=xxxx 苹果store itms-apps://itunes.apple.com/cn/app/xxxxxx
					edition_force: 1, //是否强制更新 0代表否 1代表是
					package_type: 0, //0是整包升级（apk或者appstore或者安卓应用市场） 1是wgt升级
					edition_issue: 1, //是否发行  0否 1是 为了控制上架应用市场审核时不能弹出热更新框
					edition_number: 100, //版本号 最重要的manifest里的版本号 （检查更新主要以服务器返回的edition_number版本号是否大于当前app的版本号来实现是否更新）
					edition_name: '1.0.0', // 版本名称 manifest里的版本名称
					edition_silence: 0 // 是否静默更新 0代表否 1代表是
				},
				platform: 'android'
			}
		},
		onLaunch: function() {
			// // #ifdef APP-PLUS

			// 		this.checkoutVersion()
			// 		// #endif
			const updateManager = uni.getUpdateManager()
			updateManager.onCheckForUpdate(function(res) {
				// 请求完新版本信息的回调
				console.log(res.hasUpdate)
			})
			// 下载新版本
			updateManager.onUpdateReady(function() {
				uni.showModal({
					title: '更新提示',
					content: '新版本已经准备好，是否重启应用？',
					success(res) {
						if (res.confirm) {
							// 重启应用
							updateManager.applyUpdate()
						}
					},
				})
			})
			// 新版本下载失败
			updateManager.onUpdateFailed(function(res) {
				// 新的版本下载失败
				uni.showModal({
					title: '已经有新版本了哟~',
					content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
				})
			})
			
			
			//3. 初始化uni身份信息管理模块
			// uniIdPagesInit();
			//4. 初始化uniIm
			// uniImUtils.init();
		},


		onShow: function() {
			// this.checkoutVersion()
			console.log('App Show')
			// #ifdef APP-PLUS
			// APP从后台切换到前台，请求更新
			// 有些人APP从来不关，每次都需要调用接口重新校验版本
			// uni.getSystemInfo({
			// 		success: e => {							// 新版本更新校验			// 			this.platform = e.platform	
			// 			this.checkoutVersion()
			// 	}
			// })
			// #endif



		},
		onHide: function() {
			console.log('App Hide')
		},
		mounted() {
			// #ifdef H5
			// var vConsole = new VConsole()
			// console.log('开启调试')
			//  #endif
			this.setAppInfo()
		},
		methods: {


			checkoutVersion() {
				//	跟服务器上存放的的版本号（不是版本名称，版本号为 int 类型那个）比较，检查是否需要更新
				plus.runtime.getProperty(plus.runtime.appid, (info) => {
					console.log('info', info)
					// this.$api.checkVersion({
					// 	platform: this.platform == 'android' ? '045002' : '045001',
					// 	versionCode: parseFloat(info.versionCode)
					// }).then(res => {
					// 	if (res.code == 200 && res.result.update) {
					// 		需要更新
					// 		this.needUpdate = true
					// 		this.requestUpdateApp()
					// 	}
					// })
					version({
							type: this.platform == 'android' ? '1101' : '1102',

						})
						.then(res => {
							console.log(info.version)
							console.log(res.data.versionCode)
							var isbig = false
							isbig = this.compare(res.data.versionCode, info.version)

							console.log(isbig)
							if (isbig) {
								this.data.describe = res.data.versionInfo
								this.data.edition_number = info.version
								this.data.edition_name = info.version
								this.data.edition_url = res.data.downloadUrl
								console.log(this.data)

								//跳转更新页面 （注意！！！如果pages.json第一页的代码里有一打开就跳转其他页面的操作，下面这行代码最好写在setTimeout里面设置延时3到5秒再执行）
								uni.navigateTo({
									url: '/uni_modules/rt-uni-update/components/rt-uni-update/rt-uni-update?obj=' +
										JSON.stringify(this.data)
								});
								// this.requestUpdateApp(res.data.downloadUrl,res.data.versionInfo)
							}
							// if(res.data.versionCode){
							// 		console.log('info.version==res.data.versionCode',info.version==res.data.versionCode)
							// 	if(info.version==res.data.versionCode){

							// 	}else{
							// 		this.requestUpdateApp(res.data.downloadUrl,res.data.versionInfo)
							// 	}
							// }


						})
				});
			},
			// *
			// 	 * 版本号比较方法
			// 	 * 传入两个字符串，当前版本号：curV；比较版本号：reqV
			// 	 * 调用方法举例：compare("1.1","1.2")，将返回false
			// 	 */
			compare(curV, reqV) {
				if (curV && reqV) {
					//将两个版本号拆成数字
					var arr1 = curV.split('.'),
						arr2 = reqV.split('.');
					var minLength = Math.min(arr1.length, arr2.length),
						position = 0,
						diff = 0;
					//依次比较版本号每一位大小，当对比得出结果后跳出循环（后文有简单介绍）
					while (position < minLength && ((diff = parseInt(arr1[position]) - parseInt(arr2[position])) == 0)) {
						position++;
					}
					diff = (diff != 0) ? diff : (arr1.length - arr2.length);
					//若curV大于reqV，则返回true
					return diff > 0;
				} else {
					//输入为空
					console.log("版本号不能为空");
					return false;
				}
			},
			requestUpdateApp(downloadUrl, versionInfo) {
				console.log(downloadUrl, versionInfo)
				uni.showModal({
					title: '版本更新提示',
					content: versionInfo,
					confirmText: '更新',
					confirmColor: '#cb0725',
					success: res => {
						if (res.confirm) {
							console.log('点击更新')
							this.update(downloadUrl)
						}

						// 点击取消，退出APP
						if (res.cancel) {
							if (this.platform === 'android') {
								plus.runtime.quit();
							} else {
								plus.ios.import('UIApplication').sharedApplication().performSelector('exit');
							}
						}
					}
				});
			},
			update(downloadUrl) {
				uni.showLoading({
					title: '下载中'
				})

				let appUrl = downloadUrl;
				console.log('appUrl', appUrl)
				let downloadTask = uni.downloadFile({ //执行下载
					url: appUrl,
					success: downloadResult => {
						console.log('下载', downloadResult)
						uni.hideLoading()
						//下载成功，直接安装
						if (downloadResult.statusCode === 200) {
							plus.runtime.install( //安装
								downloadResult.tempFilePath, {
									force: true
								},
								function() {
									console.log("更新成功")
									// utils.showToast('更新成功，重启中');
									plus.runtime.restart();
								},
								function(e) {
									console.log("更新失败")
									// utils.showToast('更新失败');
								}
							);
						};
					},
				});
			},
			// 获取系统栏高度
			async setAppInfo() {
				let that = this
				return new Promise((resolve, reject) => {
					uni.getSystemInfo({
						success: function(e) {
							Vue.prototype.StatusBar = e.statusBarHeight
							// #ifdef H5
							Vue.prototype.CustomBar = e.statusBarHeight + 45
							// #endif

							// #ifdef APP-PLUS
							if (e.platform == 'android') {
								Vue.prototype.CustomBar = e.statusBarHeight + 50
							} else {
								Vue.prototype.CustomBar = e.statusBarHeight + 45
							}
							// #endif

							// #ifdef MP-WEIXIN
							let custom = wx.getMenuButtonBoundingClientRect()
							Vue.prototype.Custom = custom
							Vue.prototype.CustomBar = custom.bottom + custom.top - e
								.statusBarHeight
							// #endif
						},
					})
				})
			},

			// 自动登录
			async autoLogin(data) {},
		},
	}
</script>

<style lang="scss">
	/*每个页面公共css */
	@import 'animate.css';
	@import './assets/iconfont/iconfont.css';
	@import './assets/css/base.less';
	@import './assets/css/reset.less';
	@import './assets/css/style.less';

	page {
		background-color: #ffffff;
		// padding-bottom: 120rpx;
	}

	/* 去除scroll滚动条 */
		::-webkit-scrollbar {
		width: 0;
			height: 0;
			background-color: transparent;
	}

	.leftArrowImage {
		width: 50rpx;
		height: 50rpx;
		margin-top: 100rpx;
		margin-left: 30rpx;
		// background-size: 100% 100%;
		// background-image: url(static/home/left.png);
	}
	.topView {
		margin-top: -160rpx;
		height: 882rpx;
		
		background-image: url('https://oss.xypeiwan.cn/uploads/20230727/22e444351b6931d2edc5c6ed195fa707.png');
		// background-image: url('/static/common/topBg.png');
		background-size: 100% 100%;
		// background-color: #567890;
	}
	.topView1{
		height: 160rpx;
	}

	.baseColor{
		color: $base-color;
	}
	.arrow{
		width: 28rpx;
		height: 28rpx;
	}
	.phone{
		width: 60rpx;
		height: 60rpx;
	}
	.qdImage {
		width: 36rpx;
		height: 36rpx;
	}
	.status_bar {
			height: var(--status-bar-height);
			width: 100%;
		}
	
		.headerBar {
			padding-top: var(--status-bar-height);
		}
	
		.footer {
			position: fixed;
			bottom: 0px;
			left: 0;
			right: 0;
			z-index: 99;
			// calc(var(--status-bar-height) + 60px);
			// padding-bottom: env(safe-area-inset-bottom);
			padding-bottom:calc( env(safe-area-inset-bottom)+ 10px);
		}
</style>
